package com.zhuanzhuan.hero.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhuanzhuan.hero.user.dto.auth.CommitAuthDTO;
import com.zhuanzhuan.hero.user.dto.backend.AuditOperateDTO;
import com.zhuanzhuan.hero.user.entity.HeroUserAudit;
import com.zhuanzhuan.hero.user.pojo.bo.QueryAuditParam;

import java.util.List;

/**
 * dal Interface:HeroUserAudit
 * @author hanjunjun
 * @date 2024-6-27
 */
public interface HeroUserAuditService extends IService<HeroUserAudit> {

    List<HeroUserAudit> listByUid(Long uid);

    /**
     * 创建认证审核
     *
     * @param uid
     * @param commitAuthDTO
     * @return void
     * @author  hanjunjun
     * @date 2024/6/29
     **/
    void createAudit(Long uid, CommitAuthDTO commitAuthDTO);

    /**
     * 审核通过
     *
     * @param auditOperateDTO
     * @return void
     * @author  hanjunjun
     * @date 2024/6/29
     **/
    void passAudit(AuditOperateDTO auditOperateDTO);

    /**
     * 审核驳回
     *
     * @param auditOperateDTO
     * @return void
     * @author  hanjunjun
     * @date 2024/6/29
     **/
    void rejectAudit(AuditOperateDTO auditOperateDTO);

    HeroUserAudit getByUidAndAuthType(Long uid, Integer auditType);

    void delById(Long id);

    HeroUserAudit queryById(Long id);

    /**
     * 根据条件查询
     *
     * @param queryAuditParam
     * @return java.util.List<com.zhuanzhuan.hero.user.entity.HeroUserAudit>
     * @author  hanjunjun
     * @date 2024/7/10
     **/
    List<HeroUserAudit> listByParam(QueryAuditParam queryAuditParam);
}